package com.zbkj.crmeb.order.pprocess;

import java.math.BigDecimal;
import java.util.Map;

import com.zbkj.crmeb.chant.request.PurchaseProductRequest;
import com.zbkj.crmeb.finance.model.UserRecharge;
import com.zbkj.crmeb.front.request.OrderCreateRequest;
import com.zbkj.crmeb.front.response.OrderPayResponse;
import com.zbkj.crmeb.merchant.api.request.BuyMemberRequest;
import com.zbkj.crmeb.store.model.StoreOrder;
import com.zbkj.crmeb.store.model.StoreOrderInfo;
import com.zbkj.crmeb.store.request.StoreOrderRefundRequest;

public interface IOrangePayOrderProcess {

    /**
     * 创建订单
     *
     */
    OrderPayResponse creatPayOrder(String key, OrderCreateRequest orderRequest, String ip) ;
    
    /**
     * 二维码充值
     *
     */
    UserRecharge createImgRecharge(BigDecimal price) ;

    /**
     * 重新支付
     *
     * @param order
     * @param ip
     */
    public Map<String, Object> toPayOrder(StoreOrder order, String ip);
    
    /**
     * 退款
     *
     * @param request
     */
    public boolean refund(StoreOrderRefundRequest request, StoreOrder storeOrder, StoreOrderInfo storeOrderInfo);

    /**
     * 购买会员
     * @author daigb
     * @date:  2022-07-20 14:00
     */
    Object buyMember(BuyMemberRequest request);

    /**
     * 功能描述: 商户购买产品与服务
     * @Param: [purchaseProductRequest, ip]
     * @Return: java.lang.Object
     * @Author: wangzh
     * @Date: 2023/5/5 16:11
     */
    Map<String, Object> purchaseProduct(PurchaseProductRequest purchaseProductRequest, String ip);

}
